home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
onlypc
/
java
/
samples.bin
/
CalculateFrame.java
< prev
next >
Wrap
Text File
|
1996-03-07
|
7KB
|
216 lines
/*
This class is a basic extension of the Frame class. It can be used by
either an applet or application. To use it, create a reference to the class,
instantiate an object of the class, and call the show() method.
example:
CalculateFrame myNewFrame;
myNewFrame = new CalculateFrame();
myNewFrame.show();
You can add controls or menus to this class with Cafe Studio.
*/
import java.awt.*;
import java.lang.*;
public class CalculateFrame extends Frame {
public CalculateFrame() {
super("Simple Calculations");
//{{INIT_CONTROLS
setLayout(null);
addNotify();
resize(insets().left + insets().right + 299, insets().top + insets().bottom + 261);
label1=new Label("Number 1 =");
add(label1);
label1.reshape(insets().left + 12,insets().top + 65,84,13);
label2=new Label("Number 2 =");
add(label2);
label2.reshape(insets().left + 12,insets().top + 98,84,13);
label3=new Label("Answer =");
add(label3);
label3.reshape(insets().left + 12,insets().top + 143,84,13);
Number1Field=new TextField(8);
add(Number1Field);
Number1Field.reshape(insets().left + 114,insets().top + 60,72,18);
Number2Field=new TextField(8);
add(Number2Field);
Number2Field.reshape(insets().left + 114,insets().top + 96,72,18);
AnswerField=new TextField(8);
add(AnswerField);
AnswerField.reshape(insets().left + 114,insets().top + 138,72,18);
AddButton=new Button("+");
add(AddButton);
AddButton.reshape(insets().left + 216,insets().top + 60,24,18);
DivideButton=new Button("/");
add(DivideButton);
DivideButton.reshape(insets().left + 216,insets().top + 138,24,18);
MultiplyButton=new Button("x");
add(MultiplyButton);
MultiplyButton.reshape(insets().left + 216,insets().top + 112,24,18);
SubtractButton=new Button("-");
add(SubtractButton);
SubtractButton.reshape(insets().left + 216,insets().top + 86,24,18);
//}}
AnswerField.setBackground(Color.gray);
Number1Field.requestFocus();
//{{INIT_MENUS
MenuBar mb = new MenuBar();
menu1 = new Menu("&Calculate");
menu1.add(new MenuItem("&Add"));
menu1.add(new MenuItem("&Subtract"));
menu1.add(new MenuItem("&Multiply"));
menu1.add(new MenuItem("&Divide"));
mb.add(menu1);
setMenuBar(mb);
//}}
}
public synchronized void show() {
move(50, 50);
super.show();
}
public boolean handleEvent(Event event) {
if (event.id == Event.ACTION_EVENT && event.target == DivideButton) {
OnDivide();
return true;
}
else
if (event.id == Event.ACTION_EVENT && event.target == MultiplyButton) {
OnMultiply();
return true;
}
else
if (event.id == Event.ACTION_EVENT && event.target == SubtractButton) {
OnSubtract();
return true;
}
else
if (event.id == Event.ACTION_EVENT && event.target == AddButton) {
OnAdd();
return true;
}
else
if (event.id == Event.WINDOW_DESTROY) {
hide();
return true;
}
return super.handleEvent(event);
}
//{{DECLARE_CONTROLS
Label label1;
Label label2;
Label label3;
TextField Number1Field;
TextField Number2Field;
TextField AnswerField;
Button AddButton;
Button DivideButton;
Button MultiplyButton;
Button SubtractButton;
//}}
//{{DECLARE_MENUS
Menu menu1;
//}}
public boolean action(Event event, Object arg) {
if (event.target instanceof MenuItem) {
String label = (String) arg;
if (label.equalsIgnoreCase("&Divide")) {
OnDivide();
return true;
} else if (label.equalsIgnoreCase("&Multiply")) {
OnMultiply();
return true;
} else if (label.equalsIgnoreCase("&Subtract")) {
OnSubtract();
return true;
} else if (label.equalsIgnoreCase("&Add")) {
OnAdd();
return true;
}
}
return super.action(event, arg);
}
public void OnAdd() {
double sum, num1, num2;
try {
num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
} catch (NumberFormatException e) { return; }
sum = num1 + num2;
if( sum < 0 ) { AnswerField.setBackground(Color.red); }
else { AnswerField.setBackground(Color.gray); }
AnswerField.setText(String.valueOf(sum));
}
public void OnSubtract() {
double diff, num1, num2;
try {
num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
} catch (NumberFormatException e) { return; }
diff = num1 - num2;
if( diff < 0) { AnswerField.setBackground(Color.red); }
else { AnswerField.setBackground(Color.gray); }
AnswerField.setText(String.valueOf(diff));
}
public void OnMultiply() {
double product, num1, num2;
try {
num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
} catch (NumberFormatException e) { return; }
product = num1 * num2;
if( product < 0) { AnswerField.setBackground(Color.red); }
else { AnswerField.setBackground(Color.gray); }
AnswerField.setText(String.valueOf(product));
}
public void OnDivide() {
double quotient, num1, num2;
try {
num1 = (Double.valueOf(Number1Field.getText())).doubleValue();
num2 = (Double.valueOf(Number2Field.getText())).doubleValue();
} catch (NumberFormatException e) { return; }
if(num2 == 0) return;
quotient = num1 / num2;
if( quotient < 0) { AnswerField.setBackground(Color.red); }
else { AnswerField.setBackground(Color.gray); }
AnswerField.setText(String.valueOf(quotient));
}
}